home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / ms_dos / cd_lib / src / cdr_sdrv.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-08  |  704 b   |  32 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <dos.h>
  4. #include "define.h"
  5.  
  6. /* ドライブモードの設定 */
  7. /*
  8.  * decice_no:   device number (Towns CD-ROM -> 0)
  9.  * sector_size: セクターサイズ(2048, 2336, or 2340)
  10.  * return: 0 -> 正常終了, 0以外 -> エラー
  11.  */
  12. int cdr_sdrvmd(int device_no, int sector_size)
  13. {
  14.     union REGS reg;
  15.     
  16.     reg.h.ah = 0x00;
  17.     reg.h.al = (0xC0 | (u_char) device_no);
  18.     reg.x.cx = 0x0000;
  19.     reg.h.dl = (u_char) sector_size;
  20.     
  21.     int86(0x93, ®, ®);
  22.     
  23.     if (reg.h.ah == 0) {
  24.         return 0;
  25.     } else if (reg.h.ah == 0x02) { /* device number error */
  26.         return DEVERR;
  27.     } else {                       /* (reg.h.ah == 0x80) hard ware error */
  28.         return reg.x.cx;
  29.     }
  30. }
  31.  
  32.